package com.youlu.campus.admin.sign.service;

import com.youlu.campus.base.base.PageQueryRequest;
import com.youlu.campus.base.sign.SignPlanBase;
import com.youlu.campus.base.sign.dto.SignDailyPageRequest;
import com.youlu.campus.base.sign.dto.SignDailyPageResponse;
import com.youlu.campus.base.sign.dto.SignPlanCreateRequest;
import com.yuelin.infrastructure.quantum.common.QResult;
import org.springframework.data.domain.Page;

/**
 * 打卡项目服务
 */
public interface SignPlanService {

    /**
     * 添加打卡项目
     * @param createRequest
     * @return
     */
    QResult createSignPlan(SignPlanCreateRequest createRequest);

    /**
     * 编辑打卡项目
     * @param createRequest
     * @return
     */
    QResult editSignPlan(SignPlanCreateRequest createRequest);

    /**
     * 获取打卡项目列表
     * @return
     */
    QResult<Page<SignPlanBase>> getSignPlanList(PageQueryRequest request);

    /**
     * 启用/禁用
     * @param id
     * @param status enabled 开启 disabled 关闭
     * @return
     */
    QResult<Integer> signPlanStatus(String id, String status);

    /**
     * 获取打卡内容列表
     * @return
     */
    QResult<Page<SignDailyPageResponse>> getSignDailyList(SignDailyPageRequest request);


    /**
     * 隐藏显示打卡内容
     * @param id
     * @param displayed
     * @return
     */
    QResult<Integer> SignDailyDisplayed(String id, boolean displayed);
}
